package com.example.mapper;


import com.example.entity.dto.ProjectDto;
import com.example.entity.dto.Sub_ProjectsDto;
import com.example.entity.vo.*;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface ProjectMapper {
    //只是接口
    /**
     * 添加项目
     * @param projectDto
     */
    void AddProject(ProjectDto projectDto);
    /**
     * 添加分项目
     * @param sub_projectDto
     */
    void Add_subProject(Sub_ProjectsDto sub_projectDto);

    void DeleteProject(Integer Id);
    void Delete_subProject(Integer Id);

    Sub_ProjectsVo collect_sub(@Param("id")int id,@Param("date")String date);
    /**
    *
    *在这个查询中，#{Id} 和 #{time} 将分别与方法中的 @Param("Id") 和 @Param("time") 对应
    *这样 MyBatis 就知道在执行查询时要从方法参数中获取哪些值。
    *
    * */
    ProjectsVo collect(@Param("Id")Integer Id,@Param("time")String time);

    List<getProjectsVo> getProjectbyId(Integer Id);

    List<getProjectsVo> getProject();

    List<getSub_ProjectsVo> Get_subProject(@Param("id") int id);

    List<getSub_ProjectsVo> get_subProjectbyId(Integer Id);

    void updateProject(ProjectDto projectDto);

    void updatesubProject(Sub_ProjectsDto sub_ProjectsDto);

    List<SubProjectsVo> getSubDetail(@Param("id") int id,@Param("date") String date);

    List<Sub_ProjectsDto> getSub();

    String getSubProjectNameById(int id);

    getSub_ProjectsVo getSubByIdAndTime(@Param("id") int id,@Param("date") String date);

    void deleteSubDate(Integer id);

    void Add_subProjectDate(Sub_ProjectsDto sub_projectsDto);

    void updatesubProjectDate(Sub_ProjectsDto sub_projectsDto);
}
